package cz.muni.fi.pv168.reminder.managers;

import cz.muni.fi.pv168.reminder.entities.Task;
import java.util.List;
import javax.sql.DataSource;

/**
 *
 * @author Adic
 */
public interface TaskManager {

    /**
     *
     * @param task
     * @return
     */
    public void createTask(Task task);

    /**
     *
     * @param task
     */
    public void updateTask(Task task);

    /**
     *
     * @param task
     */
    public void deleteTask(Task task);

    /**
     *
     * @return
     */
    public List<Task> findAllTasks();

    /**
     *
     * @param id
     * @return
     */
    public Task findTaskById(Long id);

    /**
     *
     * @return
     */
    public List<Task> findAllDoneTasks();



    /**
     *
     * @return
     */
    public List<Task> findAllTasksOverDeadline();
    
    void setDataSource(DataSource ds);

    public List<Task> findAllPendingTasks();
}
